package com.ruoyi.operation.order.data.service;

import com.ruoyi.operation.order.data.domain.Allotment;
import com.ruoyi.operation.order.data.domain.OrderData;
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @author wangzhiwei phone(WeChat)):15062775766
 * @date 2020/5/2 21:24
 */
public interface IOrderDataService {

    /**
     *  数据管理模块
     * @param orderDataList
     * @return
     */
    String importOrderDate(List<OrderData> orderDataList);

    /**
     * 导入Excel表格
     * @param file
     * @throws Exception
     */
    void importExcel(@RequestParam("file") MultipartFile file) throws Exception;

    /**
     * 新增数据管理的数据
     * @param orderData
     * @return
     */
    int saveOrderData(OrderData orderData);

    /**
     * 分页查询所有的数据信息
     * @param orderData
     * @return
     */
    List<OrderData> findAll(OrderData orderData);


    /**
     * 导出
     * @param orderData
     * @return
     */
    void exportExcel(OrderData orderData, HttpServletRequest request, HttpServletResponse response) throws  Exception;

    /**
     * 根据旺旺号查询是否存在
     * @param wangwangNumber
     * @return
     */
    int countWwNum(String wangwangNumber);

    /**
     * 批量删除客户信息
     *
     * @param dataIds 需要删除的数据ID
     * @return 结果
     * @throws Exception 异常
     */
    int batchDeleteIds(String dataIds) throws Exception;

    /**
     * 导入数据
     * @param orderDataList
     * @param isUpdateSupport
     * @return
     */
    String importOrderData(List<OrderData> orderDataList ,Boolean isUpdateSupport );

    /**
     * 查询所有的未分配的总的客户的数据
     * @return
     */
    String getDataCount();


    /**
     * 根据前台传来的分配的人数查询对应的需要分配的条数
     * @param allotment
     * @return
     */
    List<String> getAllId(Allotment allotment);

    /**
     * 对于分配进行修改
     * @param orderData
     * @return
     */
    int batchUpdate(OrderData orderData);

    /**
     * 查询该业务员已经分配的人数
     * @param userId
     * @return
     */
    String yetCount(Long userId);
}
